package com.zjj.learn.javaplus.pkg01.demo11;

/**
 * 继承测试
 * 注意：
 * 1、子类不能继承父类中的构造器
 * 2、值得注意的是子类可以继承父类的私有成员（成员变量，方法），只是子类无法直接访问而已，
 * 可以通过getter/setter方法访问父类的private成员变量。
 * 3、子类不能访问父类中的私有方法和属性，只能访问 public 和 protected 属性的方法和属性
 *
 */
public class TestDemo01 {

    public static void main(String[] args) {

        Student student = new Student("张三", 15, 145);
        // 我是一个学生 ，Student 重写了 People 中的 desc 方法
        student.desc();

        Teacher teacher = new Teacher("小李", 30, 1000.00);
        // 我是一名人民教师
        teacher.desc();
        //调用子类中各自的特有方法，当返回对象是 父类 People 时，不能访问子类中的方法
        student.learn("语文");

        teacher.teach("数学");
        //age = 30；注意：子类不能访问父类中的私有方法和属性，只能访问 public 和 protected 属性的方法和属性
        Integer age = teacher.getAge();
        System.out.println("age = " + age);
        People people1 = new Teacher("小赵", 26, 9653.25);
        //people1.learn("化学"); //会报错
    }
}
